package rjgc.mall.mapper;

import org.apache.ibatis.annotations.Mapper;
import rjgc.mall.entity.TradeAction;

import java.util.List;

@Mapper
public interface TradeActionMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(TradeAction record);

    int insertSelective(TradeAction record);

    TradeAction selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(TradeAction record);

    int updateByPrimaryKey(TradeAction record);

    int tradeSuccess(Integer goodsId);

    int tradeFail(Integer goodsId);

    Integer trading(Integer id);

    Integer getStatus(Integer id);

    int getUserId(Integer id);

    int getGoodsId(Integer id);

    Integer getGoodsId2(Integer gooosId);
    TradeAction getActopm(Integer gooosId);
    Integer getActionId(Integer gooosId);
    List<TradeAction> intendingUser(Integer goods_id);
    TradeAction getSuccessTrade(Integer goodsId);
    Integer getTradecount(Integer goodsId);
    List<TradeAction> seeUsertradition(Integer user_id);
    TradeAction seeTraditionbyid(Integer id);
    List<TradeAction> getActionByUserID(Integer userId);
    void CancelTrad(Integer id);
    void completeGoods(Integer id);

    //此后为本学期新增
    /************获取订单result**********/
    Integer getTradeResult(Integer tradeid);
    /************将订单状态从确认订单变更为待发货**********/
    Integer prepareTheGoods(Integer tradeid);
    /************将订单状态从待发货变更为已发货**********/
    Integer prepareFineWatingforSendOut(Integer tradeid);
    /************将订单状态从已发货变更为交易完成**********/
    Integer sendOutwatingForReception(Integer tradeid);
    /************将订单状态从未支付变更为已支付**********/
    /************将订单状态从确认订单变更为待发货**********/
    Integer prepareTheGoodsByTradeNo(String tradeNo);
    /************将订单状态从待发货变更为已发货**********/
    Integer prepareFineWatingforSendOutByTradeNo(String tradeNo);
    /************将订单状态从已发货变更为交易完成**********/
    Integer sendOutwatingForReceptionByTradeNo(String tradeNo);
    /************将订单状态从未支付变更为已支付**********/
    Integer TheOrderWasPaid(Integer tradeid);
    //添加支付时间和流水号
    Integer addPaymentTimeAndAlipayNo(Integer tradeid,String gmtPayment,String alipayTradeNo);
    //根据tradeid修改订单状态为已退款（result=6）
    Integer theMoneyWasReturned(Integer tradeid);
    //新的增加订单
    int insert2(TradeAction record);
    //获取购买数量
    int getTradeNum(Integer id);
    //根据订单编号获取goodid
    List<Integer> getGoodIdByTradeNo(String tradeNo);
    //根据订单编号获取tradeid
    List<Integer> getTradeIdByTradeNo(String tradeNo);

    //根据tradeNo修改订单状态为已支付，并加入txnTime和queryId,用于银联支付
    Integer unionPayMessageUpdate(String tradeNo,String PaymentTime,String queryId);
    //根据tradeNo修改订单状态为已支付，并加入gmtPayment和alipayTradeNo，用于支付宝支付
    Integer aliPayMessageUpdate(String tradeNo,String gmtPayment,String alipayTradeNo);
    //根据tradeNo修改订单状态为已退款
    Integer refundByTradeNo(String tradeNo);
}
